Friend locator based on friend network and profile

ABSTRACT

A method for identifying at least one contact associated with a user and an online communication network. The method may include receiving at least one search term or a social media post entered by the user. The method may also include performing text analytics on the received search term or the social media post to determine at least one subject. The method may further include identifying a plurality of contacts associated with the user, whereby the user and the plurality of contacts are associated with the online communication network. The method may additionally include performing text analytics on a plurality of communications associated with the identified plurality of contacts to determine a plurality of context information. The method may include comparing the determined subject to the determined plurality of context information. The method may include identifying at least one contact within the identified plurality of contacts based on the comparing.

BACKGROUND

The present invention relates generally to the field of computers, andmore particularly to online communication networks.

A social networking service is an online service, platform, or site thatfocuses on facilitating the building of social networks or socialrelations among people who, for example, may share interests,activities, backgrounds, etc. Many people utilize such social networksto build a friend network. The friends in a friend network may havetheir own friends that they are connected with on social media sites. Asa result, a user's friend network has the potential to be vast, witheach person submitting a great deal of personal information to thesocial media site.

SUMMARY

According to one embodiment, a method for identifying at least onecontact associated with a user and an online communication network isprovided. The method may include receiving at least one search term or asocial media post entered by the user. The method may also includeperforming text analytics on the received search term or the socialmedia post to determine at least one subject. The method may furtherinclude identifying a plurality of contacts associated with the user,whereby the user and the plurality of contacts are associated with theonline communication network. The method may additionally includeperforming text analytics on a plurality of communications associatedwith the identified plurality of contacts to determine a plurality ofcontext information. The method may include comparing the determinedsubject to the determined plurality of context information. The methodmay also include identifying at least one contact within the identifiedplurality of contacts based on the comparing.

According to another embodiment, a computer system for identifying atleast one contact associated with a user and an online communicationnetwork is provided. The computer system may include one or moreprocessors, one or more computer-readable memories, one or morecomputer-readable tangible storage devices, and program instructionsstored on at least one of the one or more storage devices for executionby at least one of the one or more processors via at least one of theone or more memories, whereby the computer system is capable ofperforming a method. The method may include receiving at least onesearch term or a social media post entered by the user. The method mayalso include performing text analytics on the received search term orthe social media post to determine at least one subject. The method mayfurther include identifying a plurality of contacts associated with theuser, whereby the user and the plurality of contacts are associated withthe online communication network. The method may additionally includeperforming text analytics on a plurality of communications associatedwith the identified plurality of contacts to determine a plurality ofcontext information. The method may include comparing the determinedsubject to the determined plurality of context information. The methodmay also include identifying at least one contact within the identifiedplurality of contacts based on the comparing.

According to yet another embodiment, a computer program product foridentifying at least one contact associated with a user and an onlinecommunication network is provided. The computer program product mayinclude one or more computer-readable storage devices and programinstructions stored on at least one of the one or me tangible storagedevices, the program instructions executable by a processor. Thecomputer program product may include program instructions to receive atleast one search term or a social media post entered by the user. Thecomputer program product may also include program instructions toperform text analytics on the received search term or the social mediapost to determine at least one subject. The computer program product mayfurther include program instructions to identify a plurality of contactsassociated with the user, whereby the user and the plurality of contactsare associated with the online communication network. The computerprogram product may additionally include program instructions to performtext analytics on a plurality of communications associated with theidentified plurality of contacts to determine a plurality of contextinformation. The computer program product may include programinstructions to compare the determined subject to the determinedplurality of context information. The computer program product may alsoinclude program instructions to identify at least one contact within theidentified plurality of contacts based on the comparing.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

These and other objects, features and advantages of the presentinvention will become apparent from the following detailed descriptionof illustrative embodiments thereof, which is to be read in connectionwith the accompanying drawings. The various features of the drawings arenot to scale as the illustrations are for clarity in facilitating oneskilled in the art in understanding the invention in conjunction withthe detailed description. In the drawings:

FIG. 1 illustrates a networked computer environment according to oneembodiment;

FIG. 2 is an operational flowchart illustrating the steps carried out bya friend locator program according to at least one embodiment;

FIG. 3 is a block diagram of internal and external components ofcomputers and servers depicted in FIG. 1 according to at least oneembodiment;

FIG. 4 is a block diagram of an illustrative cloud computing environmentincluding the computer system depicted in FIG. 1, in accordance with anembodiment of the present disclosure; and

FIG. 5 is a block diagram of functional layers of the illustrative cloudcomputing environment of FIG. 4, in accordance with an embodiment of thepresent disclosure.

DETAILED DESCRIPTION

Detailed embodiments of the claimed structures and methods are disclosedherein; however, it can be understood that the disclosed embodiments aremerely illustrative of the claimed structures and methods that may beembodied in various forms. This invention may, however, be embodied inmany different forms and should not be construed as limited to theexemplary embodiments set forth herein. Rather, these exemplaryembodiments are provided so that this disclosure will be thorough andcomplete and will fully convey the scope of this invention to thoseskilled in the art. In the description, details of well-known featuresand techniques may be omitted to avoid unnecessarily obscuring thepresented embodiments.

Embodiments of the present invention relate generally to the field ofcomputers, and more particularly to online communication networks. Thefollowing described exemplary embodiments provide a system, method andprogram product to, among other things, provide a friend locator basedon a friend network and profile. Therefore, the present embodiment hasthe capacity to improve the technical field of online communicationnetworks by providing a way to find a friend associated with an onlinecommunication network, such as a social network, based on a subjectmatter. More specifically, the present embodiment may perform textanalytics on social media posts to identify other social media users whomay have useful knowledge for the user based on a subject matter.

As previously described, many people utilize such social networks tobuild a friend network. The friends in a friend network may have theirown friends that they are connected with on social media sites. As aresult, a user's friend network has the potential to be vast, with eachperson submitting a great deal of personal information to the socialmedia site. Therefore, as a user of social media, it may be difficult tosort through the vast amount of information. Social media may allow auser to search for friends based on email addresses and as such, mayprovide other friends that the user may know. However, current onlinecommunication services do not provide the ability to find a friend basedon a subject matter.

Furthermore, a process that utilizes social networking to find friendsbased on a subject matter, such as by city, by travel route, byeducation, etc. may be useful. Also, it may be useful when some friendsare found by the process, for the friend network to display how the userknows the person (i.e., the user's friend's friend).

For example, there may be times when a user may be traveling to anothercity and may want to obtain advice from someone in the user's socialnetwork that knows about the city or perhaps to see if the user can stayat their house. Additionally, another example may be, that a user maywant to learn about an event and a friend in the user's network wasgoing to this event or has gone to this event in the past. Therefore, itmay be useful for the user to be able to search via their friend networkand profile associated with the user's on-line social network service.However, the current technology does not allow for this knowledge tooccur as often as possible.

As such, it may be advantageous, among other things, to provide a friendlocator based on a subject matter, whereby the friend locator utilizes auser's friend network and profile.

According to at least one implementation, the present embodiment mayperform text analytics on social media posts to identify other socialmedia users who have useful knowledge for the user. Prior to the userentering the post or search text, text analytics may be performed on theusers' friend network and anyone with open access on the social mediasite to analyze the text to determine annotations (i.e., identifiedtext). The annotations found in the text currently being written by theuser in the current post may then be compared against the annotationsfound in other user's social media posts, user profile, and GPSinformation. Then, an algorithm may be used to compute a score as to howlikely the other social media user knows the topic of the current user'spost.

Furthermore, the present embodiment may analyze text that a user typesand determine it is related to a particular topic, such as a future tripto Florida. For example, the user may type: “I am going to Florida onSaturday”. As such, the present embodiment may determine that thesubject is Florida (i.e., the state), the time is Saturday, and thetiming is future. Then, the present embodiment may search the annotationvalues for the other social media members the user has accessed anddisplay possible friends that live in that area or that have been tothat area (based on GPS or text analysis gathering, for example).

Various implementations of the present embodiment may find the commonground between the context of a user's comments and the comments andcontents of the user's friends or contacts to compile a list of friendsthat have anything in common with one another. As such, the presentembodiment may identify the context and compile a list of friends thatshare similarities in some way to the comment. For example, if the useris entering a status message as “Watching California-Stanford football!Go bears”, the present embodiment may compile a list of user's friends(or friends' friends) who are also watching the same game, who attendsor attended the same college, who lives in California, and so forth.Therefore, the present embodiment may compile a list of friends (orfriend's friends) that are in any way related to a user's comment/post.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The following described exemplary embodiments provide a system, methodand program product to provide a friend locator based on a friendnetwork and profile. According to at least one implementation, textanalytics may be performed on a user's social media post to proposefriends in their social network that might have information regardingtheir post. As such, the present embodiment, may perform text analyticson all of a user's friends and friends of friends' posts and profileinformation to determine annotations on the text. Then, the annotationinformation may be stored in a repository, such as a database.Therefore, when a user writes a social media post, the text may beanalyzed using dictionaries and a rules engine. For example, oneimplementation may include technology framework, such as, but notlimited to Unstructured Information Management Architecture (UIMA). Thedictionaries and rules may be created ahead of time and therefore, mayassist with interpreting the text. The subject or topic of the user'spost may be determined with text analytics. As such, the subject may bematched against similar subjects written by the user friends in thepast. Then, a score may be generated to evaluate which friend haswritten about the subject the closet.

Referring to FIG. 1, an exemplary networked computer environment 100 inaccordance with one embodiment is depicted. The networked computerenvironment 100 may include a computer 102 with a processor 104 and adata storage device 106 that is enabled to run a software program 108and a Friend Locator program 116A. The networked computer environment100 may also include a server 114 that is enabled to run a FriendLocator program 116B that may interact with a database 112 and acommunication network 110. The networked computer environment 100 mayinclude a plurality of computer 102 and servers 114, only one of whichis shown. The communication network may include various types ofcommunication networks, such as a wide area network (WAN), local areanetwork (LAN), a telecommunication network, a wireless network, a publicswitched network and/or a satellite network. It should be appreciatedthat FIG. 1 provides only an illustration of one implementation and doesnot imply any limitations with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made based on design and implementationrequirements.

The client computer 102 may communicate with the Friend Locator program116B running on server computer 114 via the communications network 110.The communications network 110 may include connections, such as wire,wireless communication links, or fiber optic cables. As will bediscussed with reference to FIG. 3, server computer 114 may includeinternal components 800 a and external components 900 a, respectively,and client computer 102 may include internal components 800 b andexternal components 900 b, respectively. Client computer 102 may be, forexample, a mobile device, a telephone, a personal digital assistant, anetbook, a laptop computer, a tablet computer, a desktop computer, orany type of computing devices capable of running a program, accessing anetwork, and accessing a database 112. According to variousimplementations of the present embodiment, the Friend Locator program116A, 116B may interact with a database 112 that may be embedded invarious storage devices, such as, but not limited to a computer/mobiledevice 102, a networked server 114, or a cloud storage service.

As previously described, the client computer 102 may access the FriendLocator program 116B, running on server computer 114 via thecommunications network 110. For example, a user using a client computer102 may use the Friend Locator program 116A, 116B to perform textanalytics on a user's social media post to propose friends in theirsocial network that might have information regarding their post. Assuch, the present embodiment, may perform text analytics on all of auser's friends and friends of friends' posts and profile information todetermine annotations on the text. Then, the annotation information maybe stored in a repository, such as a database 112. As such, when a userwrites a social media post, the text may be analyzed using dictionaries120 and a rules engine (i.e., parsing rules 118). The Friend Locatormethod is explained in more detail below with respect to FIG. 2.

Referring now to FIG. 2, an operational flowchart 200 illustrating thesteps carried out by a friend locator program. As previously described,the Friend Locator program 116A, 116B (FIG. 1) may perform textanalytics on a user's social media post to propose friends in theirsocial network that might have information regarding their post.

Therefore with respect to FIG. 2 at 202, the Friend Locator program116A, 116B (FIG. 1) receives a search term or social media post that wasentered by a user. As such, a user may type in search text or a socialmedia post. For example, a user may enter a search term, such as Boston,Mass. Additionally, a user may enter a social media post, such as “I amgoing to Chicago”. As such, the text analytics may identify the city“Chicago” and find other people in the user's network who are located inChicago or posted about Chicago before. Therefore, according to at leastone implementation, the Friend Locator program 116A, 116B (FIG. 1) willperform text analytics on the text entered by the user to determine theannotations being sought after. Therefore, the subject or topic of theuser's post may be determined with text analytics, such as NLP.According to at least one implementation, when a user writes a socialmedia post, the text may be analyzed using dictionaries 120 and a rulesengine 118. For example, one implementation may include technologyframework, such as, but not limited to Unstructured InformationManagement Architecture (UIMA). The dictionaries and rules may becreated ahead of time and therefore, may assist with interpreting thetext.

Next at 204, the Friend Locator program 116A, 116B (FIG. 1) will performtext analytics (e.g., NLP) on the user's friends' posts and comments. Assuch, the present embodiment will identify the user's friends. Accordingto at least one implementation, the friends may be identified aftermeeting a criteria, such as a strength relationship to the user. Forexample, the method may search the user's on-line communication contactsassociated with an online communication network to locate friends of theuser and friends of friends of the user. The online communicationnetwork may be selected from a group consisting of, but not limited toemail, instant message (IM), short message service (SMS), socialnetworking, and WIKI.

Then, according to at least one implementation, parsing rules 118 anddictionaries 120 are used to perform text analysis on the past posts andcomments of the user's friend network and all public sites. As such,dictionaries 120 and parsing rules 118 are used to parse the informationto determine the annotations of the friends' posts. Then, the annotationinformation may be stored in a repository, such as a database 112 (FIG.1).

Then at 206, the Friend Locator program 116A, 116B (FIG. 1) willdetermine if the user's friends' posts and comments are related to theuser's search term. Therefore, a process is used to determine if thefriend's posts and comments are related to the user's entered text instep 202, previously described above. According to at least oneimplementation, an algorithm may be used to generate a score for thefriend's text based on how closely the annotations match the user'sinformation, such as, but not limited to the other friend's text, thefriend's profile information, and the friend's GPS information. As such,the subject may be matched against similar subjects written by theuser's friends in the past. Then, a score (i.e., a similarity ranking)may be generated to evaluate which friend has written most closely aboutthe subject. The similarity ranking may be performed by applying asubject based on criteria selected from a group consisting of, but notlimited to location, sentiment, age, membership, event, product,application, and etc.

Next at 208, the Friend Locator program 116A, 116B (FIG. 1) will presentthe user with all the friends and comments which have relatedinformation to the user's text. As such, a list of friends along withtext from the post and a score may be generated. For example:

User 1 and User 2 are friends

On Jan. 1, 2012 User 1 posts: I just finished a semester aboard inJapan. I learned so much and enjoyed all of it.

On Dec. 1, 2012 User 2 posts: I am going to travel to Tokyo for work. Ican't wait for the trip.

Annotators:

Country Dictionary containing all of the country names

Trip Reason rule: Identifies the text as a trip and then determines thereason for the trip.

City dictionary containing all the cities

Country City Dictionary; Dictionary per country that list all of thecountries cities

Country rule; determine the country if the country dictionary annotationor a city annotation is found. If a city annotation, then determine thecountry based on the Country City dictionary.

The annotators find the following annotations based on the above user'sposts:

User 1 post: Country: Japan

Trip Reason: education

User 2 post: Country: Japan

Trip Reason: work

City: Tokyo

According to the present embodiment, the system may display to User 2, alist of friends that possibly know about Tokyo. In this list, User 1would appear.

It may be appreciated that FIG. 2 provides only an illustration of oneimplementation and does not imply any limitations with regard to howdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made based on design and implementationrequirements. For example, as previously described, the Friend Locatorprogram 116A, 116B (FIG. 1) perform text analytics not only on all of auser's friends, but on the user's friends of friends' posts and profileinformation to determine annotations on the text.

As previously explained, the present embodiment may utilize naturallanguage processing (NLP) to identify the subject of the user's andsocial media network friend's social media content, profiles, andgeography and perform a match based on the information and perform aranking on the potential match. As such, all the comments, likes,dislikes, about-me, etc. of users who are friends (and friends offriends) of the author may be analyzed to determine if there is anyconnection. Additionally the present embodiment may find someone withina trusted circle (friend, or friends' friend). Therefore, the presentembodiment may not simply match a profile, but match a topic, interest,etc. in order to find someone trustable or familiar based on the socialmedia relationship rather than building a connection with strangers.

More specifically, the present embodiment may allow a user to search forfriends based on certain interests. Natural language processing (NLP) isused to analyze all the unstructured posts and comments to determinewhich social network users are related to the topic the user isinterested in and as such, the present embodiment may find people whotalked about that topic and who are the user's friends or friends of theuser's friends.

FIG. 3 is a block diagram 300 of internal and external components ofcomputers depicted in FIG. 1 in accordance with an illustrativeembodiment of the present invention. It should be appreciated that FIG.3 provides only an illustration of one implementation and does not implyany limitations with regard to the environments in which differentembodiments may be implemented. Many modifications to the depictedenvironments may be made based on design and implementationrequirements.

Data processing system 800, 900 is representative of any electronicdevice capable of executing machine-readable program instructions. Dataprocessing system 800, 900 may be representative of a smart phone, acomputer system, PDA, or other electronic devices. Examples of computingsystems, environments, and/or configurations that may be represented bydata processing system 800, 900 include, but are not limited to,personal computer systems, server computer systems, thin clients, thickclients, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, network PCs, minicomputer systems, anddistributed cloud computing environments that include any of the abovesystems or devices.

User client computer 102 (FIG. 1) and network server 114 (FIG. 1) mayinclude respective sets of internal components 800 a,b and externalcomponents 900 a,b illustrated in FIG. 3. Each of the sets of internalcomponents 800 include one or more processors 820, one or morecomputer-readable RAMs 822 and one or more computer-readable ROMs 824 onone or more buses 826, and one or more operating systems 828 and one ormore computer-readable tangible storage devices 830. The one or moreoperating systems 828 and the Software Program 108 (FIG. 1) and theFriend Locator program 116A (FIG. 1) in client computer 102 (FIG. 1) andthe Friend Locator program 116B (FIG. 1) in network server 114 (FIG. 1)are stored on one or more of the respective computer-readable tangiblestorage devices 830 for execution by one or more of the respectiveprocessors 820 via one or more of the respective RAMs 822 (whichtypically include cache memory). In the embodiment illustrated in FIG.3, each of the computer-readable tangible storage devices 830 is amagnetic disk storage device of an internal hard drive. Alternatively,each of the computer-readable tangible storage devices 830 is asemiconductor storage device such as ROM 824, EPROM, flash memory or anyother computer-readable tangible storage device that can store acomputer program and digital information.

Each set of internal components 800 a,b also includes a R/W drive orinterface 832 to read from and write to one or more portablecomputer-readable tangible storage devices 936 such as a CD-ROM, DVD,memory stick, magnetic tape, magnetic disk, optical disk orsemiconductor storage device. A software program, such as the SoftwareProgram 108 (FIG. 1) and the Friend Locator program 116A, 116B (FIG. 1)can be stored on one or more of the respective portablecomputer-readable tangible storage devices 936, read via the respectiveR/W drive or interface 832 and loaded into the respective hard drive830.

Each set of internal components 800 a,b also includes network adaptersor interfaces 836 such as a TCP/IP adapter cards, wireless Wi-Fiinterface cards, or 3G or 4G wireless interface cards or other wired orwireless communication links. The Software Program 108 (FIG. 1) and theFriend Locator program 116A (FIG. 1) in client computer 102 (FIG. 1) andthe Friend Locator program 116B (FIG. 1) in network server 114 (FIG. 1)can be downloaded to client computer 102 (FIG. 1) and network server 114(FIG. 1) from an external computer via a network (for example, theInternet, a local area network or other, wide area network) andrespective network adapters or interfaces 836. From the network adaptersor interfaces 836, the Software Program 108 (FIG. 1) and the FriendLocator program 116A (FIG. 1) in client computer 102 (FIG. 1) and theFriend Locator program 116B (FIG. 1) in network server 114 (FIG. 1) areloaded into the respective hard drive 830. The network may comprisecopper wires, optical fibers, wireless transmission, routers, firewalls,switches, gateway computers and/or edge servers.

Each of the sets of external components 900 a,b can include a computerdisplay monitor 920, a keyboard 930, and a computer mouse 934. Externalcomponents 900 a,b can also include touch screens, virtual keyboards,touch pads, pointing devices, and other human interface devices. Each ofthe sets of internal components 800 a,b also includes device drivers 840to interface to computer display monitor 920, keyboard 930 and computermouse 934. The device drivers 840, R/W drive or interface 832 andnetwork adapter or interface 836 comprise hardware and software (storedin storage device 830 and/or ROM 824).

It is understood in advance that although this disclosure includes adetailed description on cloud computing, implementation of the teachingsrecited herein are not limited to a cloud computing environment. Rather,embodiments of the present invention are capable of being implemented inconjunction with any other type of computing environment now known orlater developed.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g. networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported providing transparency for both theprovider and consumer of the utilized service.

Service Models are as follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client devices through athin client interface such as a web browser (e.g., web-based e-mail).The consumer does not manage or control the underlying cloudinfrastructure including network, servers, operating systems, storage,or even individual application capabilities, with the possible exceptionof limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure comprising anetwork of interconnected nodes.

Referring now to FIG. 4, illustrative cloud computing environment 400 isdepicted. As shown, cloud computing environment 400 comprises one ormore cloud computing nodes 100 with which local computing devices usedby cloud consumers, such as, for example, personal digital assistant(PDA) or cellular telephone 400A, desktop computer 400B, laptop computer400C, and/or automobile computer system 400N may communicate. Nodes 100may communicate with one another. They may be grouped (not shown)physically or virtually, in one or more networks, such as Private,Community, Public, or Hybrid clouds as described hereinabove, or acombination thereof. This allows cloud computing environment 400 tooffer infrastructure, platforms and/or software as services for which acloud consumer does not need to maintain resources on a local computingdevice. It is understood that the types of computing devices 400A-Nshown in FIG. 4 are intended to be illustrative only and that computingnodes 100 and cloud computing environment 400 can communicate with anytype of computerized device over any type of network and/or networkaddressable connection (e.g., using a web browser).

Referring now to FIG. 5, a set of functional abstraction layers 500provided by cloud computing environment 400 (FIG. 4) is shown. It shouldbe understood in advance that the components, layers, and functionsshown in FIG. 5 are intended to be illustrative only and embodiments ofthe invention are not limited thereto. As depicted, the following layersand corresponding functions are provided:

Hardware and software layer 5010 includes hardware and softwarecomponents. Examples of hardware components include: mainframes; RISC(Reduced Instruction Set Computer) architecture based servers; storagedevices; networks and networking components. In some embodiments,software components include network application server software.

Virtualization layer 5012 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers;virtual storage; virtual networks, including virtual private networks;virtual applications and operating systems; and virtual clients.

In one example, management layer 5014 may provide the functionsdescribed below. Resource provisioning provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricingprovide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may comprise applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal provides access to the cloud computing environment forconsumers and system administrators. Service level management providescloud computing resource allocation and management such that requiredservice levels are met. Service Level Agreement (SLA) planning andfulfillment provide pre-arrangement for, and procurement of, cloudcomputing resources for which a future requirement is anticipated inaccordance with an SLA. A Friend Locator program may perform textanalytics on a user's social media post to propose friends in theirsocial network that might have information regarding the user's post.

Workloads layer 5016 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation; software development and lifecycle management; virtualclassroom education delivery; data analytics processing; and transactionprocessing.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method for identifying at least one contactassociated with a user and an online communication network, the methodcomprising: receiving, on a first computer, at least one search term ora social media post entered by the user via a graphical user interfaceassociated with a second computer; performing text analytics on thereceived at least one search term or the social media post to determineat least one subject; identifying a first plurality of contactsassociated with a profile of the user and a first plurality of posts andcomments related to the user and a second plurality of contactsassociated with a second plurality of posts and comments related to theidentified first plurality of contacts, wherein the user and the firstplurality of contacts and the second plurality of contacts areassociated with the online communication network, and wherein theprofile of the user does not include the second plurality of contacts;performing text analytics on a plurality of communications associatedwith the identified first plurality of contacts and the identifiedsecond plurality of contacts to determine a plurality of contextinformation, wherein performing text analytics on the plurality ofcommunications further comprises: applying at least one electronicnatural language processing (NLP) technique to the at least one searchterm, the social media post, and the plurality of communicationsassociated with the identified first plurality of contacts and theidentified second plurality of contacts; determining a plurality ofannotations associated with the plurality of communications; and storingthe determined plurality of annotations in an online repository;comparing the at least one determined subject to the determinedplurality of context information, wherein comparing the at least onedetermined subject to the plurality of communications associated withthe identified first plurality of contacts and the identified secondplurality of contacts further comprises: applying an electronic analyticanalysis to a plurality of communications retrieved from the user; andapplying the electronic analytic analysis to a plurality ofcommunications retrieved from the identified first plurality of contactsand the identified second plurality of contacts, wherein applying theelectronic analysis comprises simultaneously searching multiple onlinedictionaries and an online parsing rules repository; identifying atleast one contact within the identified first plurality of contacts orthe identified second plurality of contacts based on the comparing,wherein the identified at least one contact meets a greatest strength ofrelationship criteria to the user and a plurality of communicationswritten by the identified at least one contact is determined to have ahighest score for matching the at least one determined subject withinthe plurality of communications, and wherein the identified at least onecontact is associated with the profile of the user or at least oneprofile included the first plurality of contacts; and displaying theidentified at least one contact along with an identified plurality ofinformation and comments related to the received at least one searchterm or the social media post and related to the identified at least onecontact.
 2. The method of claim 1, wherein the online communicationnetwork is selected from a group consisting of email, instant message(IM), short message service (SMS), social networking, and WIKI.
 3. Themethod of claim 1, wherein comparing the at least one determined subjectto the plurality of context information is based on a similarityranking.
 4. The method of claim 3, wherein the similarity ranking isperformed by applying a subject based on a plurality of criteriaselected from a group consisting of location, sentiment, age,membership, event, product, and application.
 5. The method of claim 1further comprising: displaying a plurality of relevant informationassociated with the identified at least one contact within the pluralityof contacts to the user.
 6. A computer system to identify at least onecontact associated with a user and an online communication network, thecomputer system comprising: one or more processors, one or morecomputer-readable memories, one or more computer-readable tangiblestorage devices, and program instructions stored on at least one of theone or more storage devices for execution by at least one of the one ormore processors via at least one of the one or more memories, whereinthe computer system is capable of performing a method comprising:receiving, on a first computer, at least one search term or a socialmedia post entered by the user via a graphical user interface associatedwith a second computer; performing text analytics on the received atleast one search term or the social media post to determine at least onesubject; identifying a first plurality of contacts associated with aprofile of the user and a first plurality of posts and comments relatedto the user and a second plurality of contacts associated with a secondplurality of posts and comments related to the identified firstplurality of contacts, wherein the user and the first plurality ofcontacts and the second plurality of contacts are associated with theonline communication network, and wherein the profile of the user doesnot include the second plurality of contacts; performing text analyticson a plurality of communications associated with the identified firstplurality of contacts and the identified second plurality of contacts todetermine a plurality of context information, wherein performing textanalytics on the plurality of communications further comprises: applyingat least one electronic natural language processing (NLP) technique tothe at least one search term, the social media post, and the pluralityof communications associated with the identified first plurality ofcontacts and the identified second plurality of contacts; determining aplurality of annotations associated with the plurality ofcommunications; and storing the determined plurality of annotations inan online repository; comparing the at least one determined subject tothe determined plurality of context information, wherein comparing theat least one determined subject to the plurality of communicationsassociated with the identified first plurality of contacts and theidentified second plurality of contacts further comprises: applying anelectronic analytic analysis to a plurality of communications retrievedfrom the user; and applying the electronic analytic analysis to aplurality of communications retrieved from the identified firstplurality of contacts and the identified second plurality of contacts,wherein applying the electronic analysis comprises simultaneouslysearching multiple online dictionaries and an online parsing rulesrepository; identifying at least one contact within the identified firstplurality of contacts or the identified second plurality of contactsbased on the comparing, wherein the identified at least one contactmeets a greatest strength of relationship criteria to the user and aplurality of communications written by the identified at least onecontact is determined to have a highest score for matching the at leastone determined subject within the plurality of communications, andwherein the identified at least one contact is associated with theprofile of the user or at least one profile included the first pluralityof contacts; and displaying the identified at least one contact alongwith an identified plurality of information and comments related to thereceived at least one search term or the social media post and relatedto the identified at least one contact.
 7. The computer system of claim6, wherein the online communication network is selected from a groupconsisting of email, instant message (IM), short message service (SMS),social networking, and WIKI.
 8. The computer system of claim 6,comparing the at least one determined subject to the plurality ofcontext information is based on a similarity ranking.
 9. The computersystem of claim 8, wherein the similarity ranking is performed byapplying a subject based on a plurality of criteria selected from agroup consisting of location, sentiment, age, membership, event,product, and application.
 10. The computer system of claim 6, furthercomprising: displaying a plurality of relevant information associatedwith the identified at least one contact within the plurality ofcontacts to the user.
 11. A computer program product to identify atleast one contact associated with a user and an online communicationnetwork, the computer program product comprising: one or morecomputer-readable storage devices and program instructions stored on atleast one of the one or more tangible storage devices, the programinstructions executable by a processor, the program instructionscomprising: program instructions to receive, on a first computer, atleast one search term or a social media post entered by the user via agraphical user interface associated with a second computer; programinstructions to perform text analytics on the received at least onesearch term or the social media post to determine at least one subject;program instructions to identify a first plurality of contactsassociated with a profile of the user and a first plurality of posts andcomments related to the user and a second plurality of contactsassociated with a second plurality of posts and comments related to theidentified first plurality of contacts, wherein the user and the firstplurality of contacts and the second plurality of contacts areassociated with the online communication network, and wherein theprofile of the user does not include the second plurality of contacts;program instructions to perform text analytics on a plurality ofcommunications associated with the identified first plurality ofcontacts and the identified second plurality of contacts to determine aplurality of context information, wherein performing text analytics onthe plurality of communications further comprises: program instructionsto apply at least one electronic natural language processing (NLP)technique to the at least one search term, the social media post, andthe plurality of communications associated with the identified firstplurality of contacts and the identified second plurality of contacts;program instruction to determine a plurality of annotations associatedwith the plurality of communications; and program instructions to storethe determined plurality of annotations in an online repository; programinstructions to compare the at least one determined subject to thedetermined plurality of context information, wherein comparing the atleast one determined subject to the plurality of communicationsassociated with the identified first plurality of contacts and theidentified second plurality of contacts further comprises: programinstructions to apply an electronic analytic analysis to a plurality ofcommunications retrieved from the user; and program instructions toapply the electronic analytic analysis to a plurality of communicationsretrieved from the identified first plurality of contacts and theidentified second plurality of contacts, wherein applying the electronicanalysis comprises simultaneously searching multiple online dictionariesand an online parsing rules repository; program instructions to identifyat least one contact within the identified first plurality of contactsor the identified second plurality of contacts based on the comparing,wherein the identified at least one contact meets a greatest strength ofrelationship criteria to the user and a plurality of communicationswritten by the identified at least one contact is determined to have ahighest score for matching the at least one determined subject withinthe plurality of communications, and wherein the identified at least onecontact is associated with the profile of the user or at least oneprofile included the first plurality of contacts; and programinstructions to display the identified at least one contact along withan identified plurality of information and comments related to thereceived at least one search term or the social media post and relatedto the identified at least one contact.
 12. The computer program productof claim 11, wherein the online communication network is selected from agroup consisting of email, instant message (IM), short message service(SMS), social networking, and WIKI.
 13. The computer program product ofclaim 11, wherein performing text analytics comprises applying at leastone of a natural language processing (NLP) to the at least one searchterm, the social media post, and the plurality of communicationsassociated with the identified plurality of contacts.